import 'reflect-metadata';

// 模块元数据类型
interface ModuleMetadata {
  controllers?: Function[];
  providers?: Function[];
}

// 定义模块装饰器
export function Module(metadata: ModuleMetadata): ClassDecorator {
  return (target: Function) => {
    // 模块类添加元数据
    Reflect.defineMetadata('controllers', metadata.controllers, target);
    Reflect.defineMetadata('providers', metadata.providers, target);
  };
}
